查看原文
其他

后悔大学没看到这个 Github 仓库!

沉默王二 沉默王二 2022-09-12

前段时间有个读者给我反馈说,他 30 岁,未脱产的情况下,转行学 Java 8 个月,在上海找到了一家薪水 20k 左右的工作,学习阶段我的帖子给了他不少帮助。

最近又有不少小伙伴私信问我非科班转 Java 该怎么学,零基础入门 Java 该怎么学,有这方面疑问的同学,不妨参考一下这份 GitHub 上开源的 Java 教程。

Java 基础部分基本上已经完结,篇篇都是经过我良心打造的,通俗易懂、风趣幽默,说是初学者的福音也不为过。这是目录导航的思维导图,绿色打钩部分是已经更新的。

Java 入门要学习的内容

再随便截张图给大家感受下,可以说是图文并茂了。

GitHub 地址贴在这里了:

https://github.com/itwanger/toBeBetterJavaer

至于离线版 PDF 版的 get 方式,可以扫描下方二维码关注后在公众号后台回复「Java」获取最新版。里面还有不少优质的 Java 学习资料。

▲扫描二维码进行关注▲

回复「Java」,获取PDF

还有 Guide 哥的面试突击、LeetCode 题解 Java 版、标星 115k 的 Java 开源教程等等。

回头看看,我学习 Java 也有 13 年时间了,不能说学得有多好,但这份《Java 程序员进阶之路》专栏,无疑对 Java 初学者会有很大的帮助。至于能让初学者少走多少弯路我不确定,但少走肯定是板上钉钉的事情。

自律+肯投入时间+按照我的学习建议,零基础的小白三个月入门 Java 不是什么大话!

如果还想要更多学习资料的话,我这里就不推荐了吧,只看二哥的专栏就够了。

好了,好了,推荐两本入门书吧:

  • 《Java 核心技术卷 1》及《卷 2(也可以不卷)》
  • 《Head First Java》

如果是科班零基础的,推荐看《Java 核心技术卷 1》好点。

如果是非科班转 Java,推荐看《Head First Java》可能会更合适,读起来更轻松惬意。

当然了,只看书容易视觉疲劳,不妨和视频结合起来看,B 站上有蛮多培训机构为了流量贡献了不少优质教学视频。

比如说尚硅谷宋红康老师的《Java 零基础教程》,这套视频891.4万播放。

视频地址:https://www.bilibili.com/video/BV1Kb411W75N

比如说动力节点老杜的《Java零基础教程视频》,这套视频 1296.4万播放,特喵的,刚截图的时候发现 90+人在看,不得了

视频地址:https://www.bilibili.com/video/BV1Rx411876f

视频的好处就是能看到 up 主敲代码的过程,比较勾引人,不,吸引人。

书的话,一般都是经过作者深思熟虑的,结构化更完整,系统性比较强。读者更容易进入自己的节奏去吸收精华、去除糟粕。

总之就是,入门阶段,书和视频结合起来看,效果更佳;但无论如何,一定要记得多 coding,编程的学习离不开键盘的敲击声

可以自学,但前提条件是一定要自律,不能三心二意,每天都要有计划地学习,并且要有效果。如果自制力差,扛不住诱惑,时间在无形当中都被 kill 掉了,那报班的效果可能更好点,至少有人鞭策着你。

自学的过程中,如果能遇到有实战经验的高人指点一下,就比如说单纯地帮你指出哪些地方是陷阱,哪些地方是重点,哪些地方是可以略过的,进步就是飞速的,哪怕你不是樱木花道这样的天才,没有教练、大舅哥、队友的帮助。

但是,如果你遇到的是,连 Java 中 Swing 都要求你去学的,并且给你带上 Intellij IDEA、Eclipse 都是 Swing 写的高帽子,那完蛋,你压根就没有时间和精力去学习更关键知识,比如说 Java 并发编程、Java 虚拟机,甚至偏应用的但至关重要的 Spring 开发框架你都没时间去学了,毕竟 Java 这块的知识浩如烟海,不挑重点,大包大揽的学习是行不通的。

需要掌握的内容我这里列举下

  • 数据类型(自动拆箱与自动装箱、缓存池)
  • 操作符
  • 流程控制
  • 数组
  • 字符串(字符串常量池、不可变、intern)
  • 方法/构造方法(值传递和引用传递)
  • 访问权限修饰符
  • static、final、this、super 关键字
  • 继承
  • 抽象类
  • 接口
  • 多态
  • 方法重写/方法重载
  • 内部类/匿名内部类
  • 枚举
  • 注解
  • 反射
  • 异常处理
  • 集合框架(容器)
  • 泛型
  • Java IO
  • 工具类(Arrays、Conllections、Guava、Hutool)

有遗漏的大家也可以在评论去里补出来~

Java 的集合框架(有些大学的老师喜欢叫容器),一定要吃透,比如说:

这些都是面试中习惯性被问到的知识点。如果有精力的话,最好研究一下这些类库的源码,掌握数组、链表、哈希表等等关键的数据结构,它们之间有什么差别最好能信誓旦旦地讲出来。

有可能的话,最好自己手撕一遍,看看自己能否实现一个动态数组、双向链表等。

实现的过程中,你能更好的理解 OOP 的编程思想,抽象类和接口之间的区别,final、static 关键字的使用场景等等。

在学习集合框架的时候,可以顺带把泛型给学了,要尽可能去了解为什么 Java 不能实现真正意义上的泛型,原因究竟是为什么?

Java 的基础语法这里就不提了。字符串、数组、注解、反射、异常处理机制,都要能熟练的掌握,因为只有基础扎实了,往后的学习才不会感觉很乏力。

反射看起来可能没那么耀眼,但它是很多框架的基础,比如说 SSM(Spring+SpringMVC+MyBatis)。

Java IO 部分,从设计的角度来看,典型的学院派,设计的很优雅,切割得很有模块化,但就是不太实用,实际的编程当中,很少有人会用原生的 API 进行文件的读写操作,甚至网络通信中如果涉及到了字节流读写,也都会安排 Netty 这样的框架来完成。

可以这么说,能看完这篇文章,Java IO 就算是掌握了。

当你按照我说的这些把 Java 入门的东西全部摸了一遍后,再去买本《Java 编程思想》过一遍,入门的工作就可以告一段落了。

入门阶段,要尽可能的减少干扰因素,能不学的就不学,把时间花在刀刃上。要学习的核心内容都放在《Java 程序员进阶之路》专栏的那张思维导图里了,可以把它放在收藏夹、放在桌面,作为大纲


下面是我对零基础学 Java 的一些建议,可参考。

1)如果对书没有那么敏感,容易睡着,可以直接看视频

视频相当于课堂听讲,就相当于网课,虽然也会睡着,但相对会好一点;看书就相当于课后自学。跟着视频学一段时间后,再看书的效果可能会更佳。

不懂的知识点一定要及时消化掉,不要存起来,以免堆积成山。不会的东西越多,厌学情绪就会越高涨。

必要的地方,一定要做笔记,哪怕是抄,也要多抄几遍。关键知识点要做到及时复习,免得学久了,就忘了。不做笔记的话,就很容易只是听懂了,但其实没有理解,实际编码的时候就写不出来。

2)尝试画思维导图,把知识图谱给整起来

在我看来思维导图至少有两个好处:

  • 理清思路,做笔记可能比较费时间,思维导图就快捷多了;
  • 日后复习,看别人的思维导图总是感觉和自己实际情况不符,亲自动手就不一样了。

入门部分也就是 Java 最基础的部分,这部分学扎实了,后面才会得心应手。

万丈高楼平地起,勿在浮沙筑高台

视频版我在 B 站上已经发表,铁粉们可以去给二哥来一波三连了,该交赞的交赞,该交币的交,该收藏的收藏,该分享到朋友圈的分享,总之就是,火钳刘明。

这是封面图(这次我把滤镜关了,果然脸大了不少😆):

这是 B 站地址,也可以戳「阅读原文」。

https://www.bilibili.com/video/BV1ZL411j7oR/


没有什么使我停留——除了目的,纵然岸旁有玫瑰、有绿荫、有宁静的港湾,我是不系之舟

推荐阅读

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存